import NextAuth, { User } from 'next-auth'; import Providers from 'next-auth/providers'; import { PrismaAdapter } from '@next-auth/prisma-adapter'; import { PrismaClient } from '@prisma/client'; const prisma = new PrismaClient(); export default NextAuth({ adapter: PrismaAdapter(prisma), secret: process.env.SECRET, providers: [ Providers.GitHub({ clientId: process.env.GITHUB_ID, clientSecret: process.env.GITHUB_SECRET, profile: (profile) => ({ id: String(profile.id), name: profile.name || profile.login, email: profile.email, image: profile.avatar_url, } as User & { id: string }), }), Providers.Google({ clientId: process.env.GOOGLE_ID, clientSecret: process.env.GOOGLE_SECRET, }), Providers.Email({ server: { host: process.env.EMAIL_SERVER_HOST, port: process.env.EMAIL_SERVER_PORT, auth: { user: process.env.EMAIL_SERVER_USER, pass: process.env.EMAIL_SERVER_PASSWORD, }, }, from: process.env.EMAIL_FROM, }), ], });